home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet multimedia / Muzyka / Edytory sampli (probek dzwieku) / ZynAddSubFX_2.2.0 / Setup_ZynAddSubFX-2.2.0.exe / source code / Synth / Resonance.h < prev    next >
C/C++ Source or Header  |  2005-03-14  |  2KB  |  69 lines

  1. /*
  2.   ZynAddSubFX - a software synthesizer
  3.  
  4.   Resonance.h - Resonance 
  5.   Copyright (C) 2002-2005 Nasca Octavian Paul
  6.   Author: Nasca Octavian Paul
  7.  
  8.   This program is free software; you can redistribute it and/or modify
  9.   it under the terms of version 2 of the GNU General Public License 
  10.   as published by the Free Software Foundation.
  11.  
  12.   This program is distributed in the hope that it will be useful,
  13.   but WITHOUT ANY WARRANTY; without even the implied warranty of
  14.   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  15.   GNU General Public License (version 2) for more details.
  16.  
  17.   You should have received a copy of the GNU General Public License (version 2)
  18.   along with this program; if not, write to the Free Software Foundation,
  19.   Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
  20.  
  21. */
  22. #ifndef RESONANCE_H
  23. #define RESONANCE_H
  24.  
  25. #include "../globals.h"
  26. #include "../Misc/Util.h"
  27. #include "../Misc/XMLwrapper.h"
  28. #include "../Params/Presets.h"
  29.  
  30. #define N_RES_POINTS 256
  31.  
  32. class Resonance:public Presets{
  33.     public:
  34.     Resonance();
  35.     ~Resonance();
  36.     void setpoint(int n,unsigned char p);
  37.     void applyres(int n,FFTFREQS fftdata,REALTYPE freq);
  38.     void smooth();
  39.     void interpolatepeaks(int type);
  40.     void randomize(int type);
  41.  
  42.     void add2XML(XMLwrapper *xml);
  43.     void defaults();
  44.     void getfromXML(XMLwrapper *xml);
  45.  
  46.  
  47.     REALTYPE getfreqpos(REALTYPE freq);
  48.     REALTYPE getfreqx(REALTYPE x);
  49.     REALTYPE getfreqresponse(REALTYPE freq);
  50.     REALTYPE getcenterfreq();
  51.     REALTYPE getoctavesfreq();
  52.     void sendcontroller(MidiControllers ctl,REALTYPE par);
  53.  
  54.     //parameters
  55.     unsigned char Penabled;            //if the ressonance is enabled    
  56.     unsigned char Prespoints[N_RES_POINTS];    //how many points define the resonance function
  57.     unsigned char PmaxdB;            //how many dB the signal may be amplified
  58.     unsigned char Pcenterfreq,Poctavesfreq;     //the center frequency of the res. func., and the number of octaves
  59.     unsigned char Pprotectthefundamental;       //the fundamental (1-st harmonic) is not damped, even it resonance function is low
  60.  
  61.     //controllers
  62.     REALTYPE ctlcenter;//center frequency(relative)
  63.     REALTYPE ctlbw;//bandwidth(relative)
  64.     
  65.     private:
  66. };
  67.  
  68. #endif
  69.